home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Development Libraries
/
SGI IRIX 6.2 Development Libraries.iso
/
dist
/
complib.idb
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
DSPCO.z
/
DSPCO
Wrap
Text File
|
1996-03-14
|
3KB
|
133 lines
DDDDSSSSPPPPCCCCOOOO((((3333FFFF)))) DDDDSSSSPPPPCCCCOOOO((((3333FFFF))))
NNNNAAAAMMMMEEEE
DSPCO - DSPCO factors a double precision symmetric matrix stored in
packed form by elimination with symmetric pivoting and estimates the
condition of the matrix.
IF RCOND is not needed, DSPFA is slightly faster. To solve A*X = B ,
follow DSPCO by DSPSL. To compute INVERSE(A)*C , follow DSPCO by DSPSL.
To compute INVERSE(A) , follow DSPCO by DSPDI. To compute
DETERMINANT(A) , follow DSPCO by DSPDI. To compute INERTIA(A), follow
DSPCO by DSPDI.
SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
SUBROUTINE DSPCO(AP,N,KPVT,RCOND,Z)
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
On Entry
AAAAPPPP DOUBLE PRECISION (N*(N+1)/2)
the packed form of a symmetric matrix A . The
columns of the upper triangle are stored sequentially
in a one-dimensional array of length N*(N+1)/2 .
See comments below for details.
NNNN INTEGER
the order of the matrix A . Output
AAAAPPPP a block diagonal matrix and the multipliers which
were used to obtain it stored in packed form.
The factorization can be written A = U*D*TRANS(U)
where U is a product of permutation and unit
upper triangular matrices , TRANS(U) is the
transpose of U , and D is block diagonal
with 1 by 1 and 2 by 2 blocks.
KKKKPPPPVVVVTTTT INTEGER(N)
an integer vector of pivot indices.
RRRRCCCCOOOONNNNDDDD DOUBLE PRECISION
an estimate of the reciprocal condition of A .
For the system A*X = B , relative perturbations
in A and B of size EPSILON may cause
relative perturbations in X of size EPSILON/RCOND .
If RCOND is so small that the logical expression
1.0 + RCOND .EQ. 1.0
is true, then A may be singular to working
precision. In particular, RCOND is zero if
exact singularity is detected or the estimate
underflows.
ZZZZ DOUBLE PRECISION(N)
a work vector whose contents are usually unimportant.
PPPPaaaaggggeeee 1111
DDDDSSSSPPPPCCCCOOOO((((3333FFFF)))) DDDDSSSSPPPPCCCCOOOO((((3333FFFF))))
If A is close to a singular matrix, then Z is
an approximate null vector in the sense that
NORM(A*Z) = RCOND*NORM(A)*NORM(Z) . Packed Storage The following
program segment will pack the upper triangle of a symmetric matrix.
K = 0
DO 20 J = 1, N
DO 10 I = 1, J
K = K + 1
AP(K) = A(I,J)
10 CONTINUE
20 CONTINUE LINPACK. This version dated 08/14/78 . Cleve Moler,
University of New Mexico, Argonne National Lab. Subroutines and
Functions LINPACK DSPFA BLAS DAXPY,DDOT,DSCAL,DASUM Fortran
DABS,DMAX1,IABS,DSIGN
PPPPaaaaggggeeee 2222